home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / bluetooth / bnep.h < prev    next >
C/C++ Source or Header  |  2006-04-12  |  4KB  |  151 lines

  1. /*
  2.  *
  3.  *  BlueZ - Bluetooth protocol stack for Linux
  4.  *
  5.  *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
  6.  *  Copyright (C) 2002-2005  Marcel Holtmann <marcel@holtmann.org>
  7.  *
  8.  *
  9.  *  This program is free software; you can redistribute it and/or modify
  10.  *  it under the terms of the GNU General Public License as published by
  11.  *  the Free Software Foundation; either version 2 of the License, or
  12.  *  (at your option) any later version.
  13.  *
  14.  *  This program is distributed in the hope that it will be useful,
  15.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  *  GNU General Public License for more details.
  18.  *
  19.  *  You should have received a copy of the GNU General Public License
  20.  *  along with this program; if not, write to the Free Software
  21.  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  22.  *
  23.  */
  24.  
  25. #ifndef __BNEP_H
  26. #define __BNEP_H
  27.  
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31.  
  32. #include <net/ethernet.h>
  33. #include <bluetooth/bluetooth.h>
  34.  
  35. /* BNEP UUIDs */
  36. #define BNEP_BASE_UUID 0x0000000000001000800000805F9B34FB
  37. #define BNEP_UUID16    0x02
  38. #define BNEP_UUID32    0x04
  39. #define BNEP_UUID128   0x16
  40.  
  41. #define BNEP_SVC_PANU  0x1115
  42. #define BNEP_SVC_NAP   0x1116
  43. #define BNEP_SVC_GN    0x1117
  44.  
  45. /* BNEP packet types */
  46. #define BNEP_GENERAL               0x00
  47. #define BNEP_CONTROL               0x01
  48. #define BNEP_COMPRESSED            0x02
  49. #define BNEP_COMPRESSED_SRC_ONLY   0x03
  50. #define BNEP_COMPRESSED_DST_ONLY   0x04
  51.  
  52. /* BNEP control types */
  53. #define BNEP_CMD_NOT_UNDERSTOOD    0x00
  54. #define BNEP_SETUP_CONN_REQ        0x01
  55. #define BNEP_SETUP_CONN_RSP        0x02
  56. #define BNEP_FILTER_NET_TYPE_SET   0x03
  57. #define BNEP_FILTER_NET_TYPE_RSP   0x04
  58. #define BNEP_FILTER_MULT_ADDR_SET  0x05
  59. #define BNEP_FILTER_MULT_ADDR_RSP  0x06
  60.  
  61. /* BNEP response messages */
  62. #define BNEP_SUCCESS               0x00
  63.  
  64. #define BNEP_CONN_INVALID_DST      0x01
  65. #define BNEP_CONN_INVALID_SRC      0x02
  66. #define BNEP_CONN_INVALID_SVC      0x03
  67. #define BNEP_CONN_NOT_ALLOWED      0x04
  68.  
  69. #define BNEP_FILTER_UNSUPPORTED_REQ    0x01
  70. #define BNEP_FILTER_INVALID_RANGE      0x02
  71. #define BNEP_FILTER_INVALID_MCADDR     0x02
  72. #define BNEP_FILTER_LIMIT_REACHED      0x03
  73. #define BNEP_FILTER_DENIED_SECURITY    0x04
  74.  
  75. /* L2CAP settings */
  76. #define BNEP_MTU         1691
  77. #define BNEP_FLUSH_TO    0xffff
  78. #define BNEP_CONNECT_TO  15
  79. #define BNEP_FILTER_TO   15
  80.  
  81. #ifndef BNEP_PSM
  82. #define BNEP_PSM     0x0f
  83. #endif
  84.  
  85. /* BNEP headers */
  86. #define BNEP_TYPE_MASK     0x7f
  87. #define BNEP_EXT_HEADER     0x80
  88.  
  89. struct bnep_setup_conn_req {
  90.     uint8_t  type;
  91.     uint8_t  ctrl;
  92.     uint8_t  uuid_size;
  93.     uint8_t  service[0];
  94. } __attribute__((packed));
  95.  
  96. struct bnep_set_filter_req {
  97.     uint8_t  type;
  98.     uint8_t  ctrl;
  99.     uint16_t len;
  100.     uint8_t  list[0];
  101. } __attribute__((packed));
  102.  
  103. struct bnep_control_rsp {
  104.     uint8_t  type;
  105.     uint8_t  ctrl;
  106.     uint16_t resp;
  107. } __attribute__((packed));
  108.  
  109. struct bnep_ext_hdr {
  110.     uint8_t  type;
  111.     uint8_t  len;
  112.     uint8_t  data[0];
  113. } __attribute__((packed));
  114.  
  115. /* BNEP ioctl defines */
  116. #define BNEPCONNADD    _IOW('B', 200, int)
  117. #define BNEPCONNDEL    _IOW('B', 201, int)
  118. #define BNEPGETCONNLIST    _IOR('B', 210, int)
  119. #define BNEPGETCONNINFO    _IOR('B', 211, int)
  120.  
  121. struct bnep_connadd_req {
  122.     int      sock;        /* Connected socket */
  123.     uint32_t flags;
  124.     uint16_t role;
  125.     char     device[16];    /* Name of the Ethernet device */
  126. };
  127.  
  128. struct bnep_conndel_req {
  129.     uint32_t flags;
  130.     uint8_t  dst[ETH_ALEN];
  131. };
  132.  
  133. struct bnep_conninfo {
  134.     uint32_t flags;
  135.     uint16_t role;
  136.     uint16_t state;
  137.     uint8_t  dst[ETH_ALEN];
  138.     char     device[16];
  139. };
  140.  
  141. struct bnep_connlist_req {
  142.     uint32_t cnum;
  143.     struct bnep_conninfo *ci;
  144. };
  145.  
  146. #ifdef __cplusplus
  147. }
  148. #endif
  149.  
  150. #endif /* __BNEP_H */
  151.